使用分类器(单 ROI 示例)
本教程将引导您在 OV20i 摄像头系统上创建第一个分类模型。您将学习如何设置单个感兴趣区域(ROI)分类器,以自动识别和分类不同类型的物体——本例中为不同尺寸的钻头。
您将构建的内容: 一个可正常工作的分类模型,能够自动识别和分类不同尺寸的钻头,并具有可配置的合格/不合格逻辑。
预计时间: 45-60 分钟
技能等级: 初学者
先决条件: 已设置并连接 OV20i 摄像头系统
步骤 1:创建新的分类配方
1.1 访问配方创建
- 导航至 OV20i 界面中的所有配方页面
- 点击右上角的
+ New Recipe
1.2 配置配方设置
将弹出 添加新配方 模态窗口:
- 输入配方名称: 使用描述性名称,如 "Drill_Bit_Classification_v1"
- 命名提示: 包含对象类型和版本号,便于识别
- 选择配方类型: 从下拉菜单中选择 "Classification"
- 点击
OK
创建配方
1.3 激活配方
- 在所有配方列表中找到新配方(状态显示为“Inactive”)
- 点击配方条目右侧的
Actions > Activate
- 点击
Activate
确认
✅ 检查点: 配方列表中您的配方应显示为“Active”。
步骤 2:访问配方编辑器
2.1 进入编辑模式
- 点击活动配方旁的
Edit
- 点击
Open Editor
确认并启动配方编辑器
您将看到包含多个配置部分的配方编辑器界面。
步骤 3:配置相机成像设置
3.1 打开成像配置
- 点击配方编辑器左下角的
Configure Imaging
3.2 调整焦点设置
焦点对准确分类至关重要:
- 将钻头放置在相机视野内
- 使用以下方式调整焦点:
- 滑块控制,或
- 手动输入数值
- 测试不同焦点位置,直到钻头边缘清晰锐利
焦点提示:
- 使用实时预览实时查看焦点变化
- 聚焦于最重要的特征(钻头螺旋槽、尖端几何形状)
- 确保物体的整个深度均处于焦点范围内
3.3 优化曝光设置
适当曝光确保图像质量一致:
- 使用滑块或手动输入调整曝光
- 目标是实现均衡照明,确保:
- 物体细节清晰可见
- 无过曝区域(纯白)
- 阴影不遮挡重要特征
3.4 配置 LED 照明
照明对分类准确性影响显著:
- 根据物体选择 LED 灯光模式:
- Bright Field(明场): 通用照明
- Dark Field(暗场): 突出边缘和表面缺陷
- Side Lighting(侧光): 显示纹理和高度变化
- 针对钻头,建议:
- 明场 用于一般形状分类
- 侧光 强调螺旋槽几何形状
3.5 调整 Gamma 设置
Gamma 控制图像对比度:
- 调整 Gamma 以增强特征可见性
- 较低数值 使暗部变亮
- 较高数值 增强对比度
3.6 保存成像设置
- 在实时预览中检查所有设置
- 点击
Save Imaging Settings
应用配置
✅ 检查点: 您的相机应能生成一致且光线均匀的钻头图像。
步骤 4:配置模板图像和对齐
4.1 进入对齐设置
- 点击面包屑菜单中的“Template Image and Alignment”,或
- 使用下拉菜单选择“Template Image and Alignment”
4.2 本教程跳过对齐器
由于钻头放置位置一致:
- 选择
Skip Aligner
- 点击
Save
应用更改
何时使用对齐器: 当零件位置或方向不一致时使用对齐器。本教程假设零件放置一致。
步骤 5:设置检测 ROI
5.1 进入检测设置
- 点击面包屑菜单中的“Inspection Setup”
5.2 定义感兴趣区域(ROI)
ROI 定义了分类的检测区域:
- 将钻头放置在相机视野内
- 拖动 ROI 角点框选钻头
- 确保 ROI:
- 完全包含钻头
- 排除不必要背景
- 足够大以覆盖最大尺寸钻头
5.3 ROI 最佳实践
应做 | 不应做 |
---|---|
包含所有重要特征 | ROI 过大(包含噪声) |
在物体周围留小边界 | 截断物体部分 |
居中预期物体位置 | 在一个 ROI 中包含多个物体 |
保持图像间 ROI 大小一致 | 捕获时更改 ROI |
5.4 保存 ROI 配置
- 用不同尺寸钻头验证 ROI 位置
- 点击
Save
应用 ROI 设置
检查点: ROI 应能稳定框选不同尺寸的钻头。
步骤 6:训练分类模型
6.1 进入分类模块
- 点击面包屑菜单中的“Classification Block”
6.2 创建分类类别
为不同钻头尺寸创建类别:
示例类别:
- Small Bits(1-3mm)
- Medium Bits(4-6mm)
- Large Bits(7-10mm)
6.3 捕获训练图像
每个类别至少采集 5 张不同图像:
类别 1:Small Bits
- 将小钻头放入 ROI
- 点击捕获 拍摄训练图像
- 标记图像 为 "Small"
- 重复采集 4 张不同方向/位置的小钻头图像
类别 2:Medium Bits
- 将中钻头放入 ROI
- 捕获并标记 为 "Medium"
- 重复采集 4 张不同中钻头图像
类别 3:Large Bits
- 将大钻头放入 ROI
- 捕获并标记 为 "Large"
- 重复采集 4 张不同大钻头图像
6.4 训练图像最佳实践
最佳实践 | 重要原因 |
---|---|
使用不同样本 | 提高模型泛化能力 |
多角度变化 | 适应实际定位变化 |
包含边界案例 | 改善类别边界识别 |
保持光照一致 | 减少光照依赖误差 |
至少 5 张图像 | 提供充足训练数据 |
6.5 审核和验证标签
- 仔细检查所有标记图像
- 确保类别分配正确
- 删除错误标记的样本
6.6 开始模型训练
- 点击
Train Classification Model
- 选择训练模式:
- Fast(快速): 测试用,训练时间 2-5 分钟
- Accurate(准确): 生产级训练,10-20 分钟
- 选择迭代次数:
- 迭代次数越多,准确率越高
- 迭代次数越多,训练时间越长
- 点击
Start Training
6.7 监控训练进度
训练进度窗口显示:
- 当前迭代次数
- 训练准确率百分比
- 预计完成时间
训练控制:
- Abort Training(中止训练): 如有需要可停止训练
- Finish Training Early(提前结束训练): 达到满意准确率时停止
训练提示:
- 达到目标准确率时训练自动停止
- 85% 以上准确率通常适合生产使用
- 准确率低时可添加更多图像重新训练
✅ 检查点: 模型应达到 >85% 的训练准确率。
步骤 7:测试分类器
7.1 访问实时预览
- 训练完成后点击
Live Preview
- 将不同钻头放入 ROI
- 观察分类结果:
- 预测类别名称
- 置信度百分比
- 分类耗时
7.2 验证测试
系统测试每个类别:
测试类型 | 预期结果 | 失败时操作 |
---|---|---|
已知小钻头 | 分类为 "Small",置信度 >80% | 添加更多训练图像 |
已知中钻头 | 分类为 "Medium",置信度 >80% | 检查标签准确性 |
已知大钻头 | 分类为 "Large",置信度 >80% | 重新训练,增加样本 |
空 ROI | 无分类或置信度低 | 调整置信度阈值 |
7.3 分类问题排查
问题 | 可能原因 | 解决方案 |
---|---|---|
置信度低 | 训练数据不足 | 添加更多训练图像 |
分类错误 | 图像质量差 | 改善照明/焦点 |
结果不稳定 | ROI 包含背景噪声 | 缩小 ROI 范围 |
类别混淆 | 物体外观相似 | 添加更多区分样本 |
步骤 8:配置合格/不合格逻辑
8.1 进入 IO 模块
确保所有 AI 模块均已训练完成(绿色状态)后继续:
- 点击面包屑菜单中的 “IO Block”,或
- 在配方编辑器中选择 “Configure I/O”
8.2 找到分类逻辑节点
- 找到“Classification Block Logic Node”(紫色节点)
- 若缺失: 从左侧节点菜单拖入
节点颜色说明: 紫色节点代表 Overview 逻辑块,用于 AI 操作。
8.3 配置分类逻辑
- 双击分类逻辑节点
- 配置设置:
ROI 选择
- 从“Inspection Region”下拉菜单选择您的 ROI
置信度阈值
- 设置置信度阈值(通常 70-85%)
- 阈值越高,分类越严格
- 阈值越低,分类越宽松
目标类别选择
- 选择“通过”结果的目标类别
- 示例: 若仅允许中钻头通过,选择 "Medium"
多 ROI 逻辑(高级)
- 可添加更多 ROI
- 选择逻辑规则: “Any”(任一)或 “All”(全部)必须通过
8.4 合格/不合格配置示例
配置 1:特定尺寸通过
ROI: Drill_Bit_ROI
Target Class: Medium
Confidence: 80%
Logic: 仅允许中钻头通过
配置 2:尺寸范围通过
ROI: Drill_Bit_ROI
Target Classes: Medium OR Large
Confidence: 75%
Logic: 中钻头或大钻头通过
配置 3:拒绝小钻头
ROI: Drill_Bit_ROI
Target Class: NOT Small
Confidence: 85%
Logic: 分类为小钻头时判定不合格
8.5 部署逻辑配置
- 点击右上角的
Done
- 点击 Node-RED 编辑器右上角的
Deploy
- 确认部署成功消息
步骤 9:最终测试与验证
9.1 端到端测试
测试完整检测流程:
- 将测试物体放入检测区域
- 触发检测(手动或自动)
- 验证结果:
- 显示正确分类
- 正确的合格/不合格指示
- 稳定的响应时间
9.2 生产验证清单
测试用例 | 预期结果 | ✓ |
---|---|---|
目标类别物体 | 合格结果 | ☐ |
非目标类别物体 | 不合格结果 | ☐ |
空 ROI | 不合格结果 | ☐ |
部分遮挡物体 | 置信度合理 | ☐ |
光照条件差 | 性能稳定 | ☐ |
9.3 性能优化
若结果不理想:
- 添加更多训练图像(尤其边界案例)
- 调整置信度阈值
- 改善光照一致性
- 优化 ROI 位置
- 使用“Accurate”模式重新训练
恭喜!
您已成功创建第一个分类模型!您的 OV20i 系统现在可以:
- 自动识别 不同尺寸的钻头
- 基于分类结果应用合格/不合格逻辑
- 提供每次分类的置信度分数
- 通过 I/O 控制集成生产流程
下一步
掌握单 ROI 分类后,您可以探索:
高级分类技术
- 多 ROI 分类 处理复杂零件
- 分层分类 实现细致分类
- 组合检测(分类 + 缺陷检测)
生产集成
- PLC 通信 实现自动分拣
- 数据记录 用于质量追踪
- 配方管理 支持多产品线
模型优化
- 迁移学习 适用于相似产品
- 主动学习 持续改进模型
- 性能监控 与定期重训练计划
🔗 另请参阅
故障排除指南
常见问题及解决方案
问题 | 症状 | 解决方案 |
---|---|---|
准确率低 | 分类频繁错误 | 添加更多多样化训练图像 |
性能缓慢 | 处理时间长 | 缩小 ROI,优化照明 |
结果不一致 | 同一物体结果不同 | 改善零件定位,检查焦点 |
误报 | 空 ROI 显示分类 | 提高置信度阈值 |
训练失败 | 模型无法成功训练 | 检查图像质量,确保每类至少 5 张图像 |
寻求帮助
如果遇到本教程未涵盖的问题:
- 查阅文档中的故障排除指南
- 查看系统日志中的错误信息
- 联系 Overview 支持,提供:
- 配方导出文件
- 显示问题的样本图像
- 系统配置信息
教程完成! 您现在拥有一个可用于生产的分类系统。请定期验证性能,并根据需要重新训练模型,以保持准确性。